package com.tiancheng.trade.payment.channel.umsshop.request;

import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

import java.util.List;

/**
 * 银联商务统一下单参数
 */
@Getter
@Setter
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class UmsShopUnifiedOrderRequest extends BaseUmsShopRequest {
    /**
     * 消息类型
     * 微信: wx.unifiedOrder
     * 支付宝: trade.create
     * 云闪付: uac.miniOrder
     */
    private String msgType;
    /**
     * 必传：false
     * 订单过期时间
     * 订单过期时间，为空则使用系统默认过期
     * 时间（30分钟），格式yyyy-MM-dd
     * HH:mm:ss
     */
    private String expireTime;
    /**
     * 必传：false
     * 商品标记，用于
     * 优惠活动
     */
    private String goodsTag;
    /**
     * 必传：false
     * 订单描述，不超过255个字节（微信支付：上送值不
     * 大于128个字节，超过128字节后的部分会
     * 被截掉）
     */
    private String orderDesc;
    /**
     * 必传：true
     * 支付总金额
     */
    private Integer totalAmount;
    /**
     * 订单原始金额，
     * 单位分，用于记
     * 录前端系统打折
     * 前的金额
     */
    private Integer originalAmount;
    /**
     * 必传：true
     * 支付结果通知地址
     */
    private String notifyUrl;
    /**
     * 必传：false
     * 微信分配的子商户公众账号 ID
     */
    private String subAppId;
    /**
     * 必传：false
     * 用户子标识 商户自己公众号appid下的用户openid，
     * 可以通过微信oauth接口获取。
     */
    private String subOpenId;
    /**
     * 必传：false
     * 支付宝买家ID
     * 支付宝必传
     */
    private String userId;
    /**
     * 必传：true
     * 交易类型
     * 值为MINI，如果使用云闪付云微小程序支
     * 付时需要上送UP_WX_MINI
     */
    private String tradeType;
    /**
     * 订单商品信息，必传：FALSE；
     */
    private List<UmsShopGoodsReq> goods;
    /**
     * 增值域信息
     */
    private UmsShopPaySettlReq vaFld;
}
